package vue;
import java.awt.Dimension;
import javax.swing.*;

import controle.ControleActionMenu;
import vue.onglets.ListeOnglets;
import vue.util.Util;

public class BarreOutils extends JToolBar
{
	private static final long serialVersionUID = 1L;
	private ListeOnglets listeOnglets;
	private JButton bNouveau2D;
	private JButton bNouveau3D;
	private JButton bOuvrir;
	private JButton bFermer;
	private JButton bEnregistrer;
	private JButton bEnregistrersous;
	private JButton bImprimer;
	private JButton bExportPDF;
	private JButton bAide;
	private JButton bPrecedent;
	private JButton bSuivant;
	
	public BarreOutils(ListeOnglets listeOnglets)
	{
		this.listeOnglets = listeOnglets;
		this.setFloatable(false);		
		
		bNouveau2D = new JButton("2D",Util.createImageIcon("img/new.png"));
		bNouveau3D = new JButton("3D",Util.createImageIcon("img/new.png"));
		bOuvrir = new JButton(Util.createImageIcon("img/open.png"));
		bFermer = new JButton(Util.createImageIcon("img/no.png"));
		bEnregistrer = new JButton(Util.createImageIcon("img/save.png"));
		bEnregistrersous = new JButton(Util.createImageIcon("img/save_as.png"));
		bImprimer = new JButton(Util.createImageIcon("img/print.png"));
		bExportPDF = new JButton(Util.createImageIcon("img/pdf.gif"));
		bAide = new JButton(Util.createImageIcon("img/help.png"));
		bPrecedent = new JButton(Util.createImageIcon("img/precedent.png"));
		bSuivant = new JButton(Util.createImageIcon("img/suivant.png"));
		
		bNouveau2D.setActionCommand("nouveau2D");
		bNouveau3D.setActionCommand("nouveau3D");
		bOuvrir.setActionCommand("ouvrir");
		bFermer.setActionCommand("fermer");
		bEnregistrer.setActionCommand("enregistrer");
		bEnregistrersous.setActionCommand("enregistrer_sous");
		bImprimer.setActionCommand("imprimer");
		bExportPDF.setActionCommand("export_pdf");
		bAide.setActionCommand("aide");
		bPrecedent.setActionCommand("precedent");
		bSuivant.setActionCommand("suivant");
		
		bNouveau2D.setToolTipText("Nouveau document 2D");
		bNouveau3D.setToolTipText("Nouveau document 3D");
		bOuvrir.setToolTipText("Ouvrir");
		bFermer.setToolTipText("Fermer");
		bEnregistrer.setToolTipText("Enregistrer");
		bEnregistrersous.setToolTipText("Enregistrer sous");
		bImprimer.setToolTipText("Imprimer");
		bExportPDF.setToolTipText("Exporter vers PDF");
		bAide.setToolTipText("Aide");
		bPrecedent.setToolTipText("Etape précédente");
		bSuivant.setToolTipText("Etape suivante");
		
		Dimension dim = new Dimension(5,5);
		
		add(bNouveau2D);
		add(bNouveau3D);
		add(bOuvrir);
		addSeparator(dim);
		add(bEnregistrer);
		add(bEnregistrersous);
		addSeparator(dim);
		add(bFermer);
		addSeparator(dim);
		add(bExportPDF);
		add(bImprimer);		
		add(bAide);
		addSeparator(dim);
		add(bPrecedent);
		add(bSuivant);	
		
		this.agirItemsBouton();
	}
	
	public void ajoutItemsListener(ControleActionMenu cam)
	{
		bNouveau2D.addActionListener(cam);
		bNouveau3D.addActionListener(cam);
		bOuvrir.addActionListener(cam);
		bFermer.addActionListener(cam);
		bEnregistrer.addActionListener(cam);
		bEnregistrersous.addActionListener(cam);
		bImprimer.addActionListener(cam);
		bExportPDF.addActionListener(cam);
		bAide.addActionListener(cam);
		bPrecedent.addActionListener(cam);
		bSuivant.addActionListener(cam);
	}
	
	public void agirItemsBouton()
	{
		if(listeOnglets.getComponentCount() == 0)
		{
			this.desactiverItemsBouton();
		}
		else
		{
			this.activerItemsBouton();
		}
	}
	
	private void activerItemsBouton()
	{
		bFermer.setEnabled(true);
		bEnregistrer.setEnabled(true);
		bEnregistrersous.setEnabled(true);
		bImprimer.setEnabled(true);
		bExportPDF.setEnabled(true);
		bPrecedent.setEnabled(true);
		bSuivant.setEnabled(true);
	}
	
	private void desactiverItemsBouton()
	{
		bFermer.setEnabled(false);
		bEnregistrer.setEnabled(false);
		bEnregistrersous.setEnabled(false);
		bImprimer.setEnabled(false);
		bExportPDF.setEnabled(false);
		bPrecedent.setEnabled(false);
		bSuivant.setEnabled(false);
	}
}
